Formally Validating a Practical Verification Condition Generator
نویسندگان
چکیده
Abstract A program verifier produces reliable results only if both the logic used to justify program’s correctness is sound, and implementation of itself correct. Whereas it common formally prove soundness logic, a typically remains unverified. Bugs in implementations may compromise trustworthiness successful verification results. Since verifiers practice are complex, evolving software systems, generally not feasible verify their implementation. In this paper, we present an alternative approach: validate runs widely-used Boogie by producing certificate which proves obtained result. performs complex series translations before ultimately generating condition whose validity should imply input program. We show how certify three Boogie’s core transformation phases: elimination cyclic control flow paths, (SSA-like) replacement assignments assumptions using fresh variables (passification), final generation conditions. Similar employed other verifiers. Our certificates Isabelle, based on novel formalisation language.
منابع مشابه
A Certified Multi-prover Verification Condition Generator
Deduction-based software verification tools have reached a maturity allowing them to be used in industrial context where a very high level of assurance is required. This raises the question of the level of confidence we can grant to the tools themselves. We present a certified implementation of a verification condition generator. An originality is its genericity with respect to the logical cont...
متن کاملThe Design and Algorithms of a Verification Condition Generator
This dissertation discusses several problems loosely related, because they all involve a verification condition generator. The Boogie language is introduced; the architecture of a verification-generator is described. Then come more interesting parts. (1) Moving to a passive form representation can be seen as an automatic transformation into a pure functional language. How to formalize this tran...
متن کاملTrustworthy Tools for Trustworthy Programs: A Verified Verification Condition Generator
Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our work, we define and rigorously prove correct a VCG tool within the HOL theorem proving system, for a s...
متن کاملPractical Verification Condition Generation for a Bytecode Language
Automatic program verifiers typically generate verification conditions from the program and discharge them with an automated theorem prover. An important consideration is the manner in which program code and invariants are expressed. We have developed a bytecode language (similar, in spirit, to Java bytecode) on which verification is performed. This serves as both an intermediate language for u...
متن کاملA Verification Condition Visualizer
When first encountering data structures such as arrays, records and pointers programmers are often presented with pictorial representations. The use of pictures to describe data structures and their manipulation can help establish basic programming intuitions. The same is true of program proving where pictures are frequently used within the literature to describe program properties such as loop...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Lecture Notes in Computer Science
سال: 2021
ISSN: ['1611-3349', '0302-9743']
DOI: https://doi.org/10.1007/978-3-030-81688-9_33